home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / vbtime1a / timer.ctl < prev    next >
Text File  |  1999-08-31  |  3KB  |  101 lines

  1. VERSION 5.00
  2. Begin VB.UserControl Timer 
  3.    ClientHeight    =   615
  4.    ClientLeft      =   0
  5.    ClientTop       =   0
  6.    ClientWidth     =   765
  7.    InvisibleAtRuntime=   -1  'True
  8.    ScaleHeight     =   615
  9.    ScaleWidth      =   765
  10.    ToolboxBitmap   =   "Timer.ctx":0000
  11.    Begin VB.Image IDIMG_Timer 
  12.       Height          =   420
  13.       Left            =   0
  14.       Picture         =   "Timer.ctx":0312
  15.       Top             =   0
  16.       Width           =   420
  17.    End
  18. End
  19. Attribute VB_Name = "Timer"
  20. Attribute VB_GlobalNameSpace = False
  21. Attribute VB_Creatable = True
  22. Attribute VB_PredeclaredId = False
  23. Attribute VB_Exposed = True
  24. Option Explicit
  25. Public Event Timer()
  26. Dim WithEvents timerObjLocal As CTimer
  27. Attribute timerObjLocal.VB_VarHelpID = -1
  28. Public Enum PriorityClass
  29.     Normal = &H20
  30.     Low = &H40
  31.     High = &H80
  32.     RealTime = &H100
  33. End Enum
  34.  
  35. Private Sub timerObjLocal_MVtimer()
  36.     RaiseEvent Timer
  37. End Sub
  38. Private Sub UserControl_Initialize()
  39.     Set timerObjLocal = New CTimer
  40.     Set timerObj = timerObjLocal
  41. End Sub
  42. Private Sub UserControl_InitProperties()
  43.     Enabled = False
  44.     Interval = 1000
  45. End Sub
  46. Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
  47.     Interval = PropBag.ReadProperty("Interval", 0)
  48.     Enabled = PropBag.ReadProperty("Enabled", False)
  49.     ProcessPriority = PropBag.ReadProperty("ProcessPriority", Normal)
  50. End Sub
  51. Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
  52.     PropBag.WriteProperty "Interval", Interval, 0
  53.     PropBag.WriteProperty "Enabled", Enabled, False
  54.     PropBag.WriteProperty "ProcessPriority", ProcessPriority, Normal
  55. End Sub
  56. Private Sub UserControl_Resize()
  57.     UserControl.Width = IDIMG_Timer.Width
  58.     UserControl.Height = IDIMG_Timer.Height
  59. End Sub
  60. Private Sub UserControl_Terminate()
  61.     Enabled = False
  62. End Sub
  63. Public Property Let Enabled(enable As Boolean)
  64.     If enable = True Then
  65.         lngTimerID = SetTimer(0, 0, intervalSet, AddressOf TimerProc)
  66.     Else
  67.         lngTimerID = KillTimer(0, lngTimerID)
  68.         lngTimerID = 0
  69.     End If
  70. End Property
  71. Public Property Get Enabled() As Boolean
  72.     If lngTimerID = 0 Then
  73.         Enabled = False
  74.     Else
  75.         Enabled = True
  76.     End If
  77. End Property
  78. Public Property Let Interval(value As Long)
  79.     If value > 2147483646 Then
  80.         Call MsgBox("Maximum value of 2,147,483,647 (24.8 Days)!", vbOKOnly + vbCritical, "Over Maximum")
  81.         Exit Property
  82.     End If
  83.     
  84.     If lngTimerID <> 0 Then
  85.         Enabled = False
  86.         intervalSet = value
  87.         Enabled = True
  88.     Else
  89.         intervalSet = value
  90.     End If
  91. End Property
  92. Public Property Get Interval() As Long
  93.     Interval = intervalSet
  94. End Property
  95. Public Property Let ProcessPriority(priorityValue As PriorityClass)
  96.     priority = priorityValue
  97. End Property
  98. Public Property Get ProcessPriority() As PriorityClass
  99.     ProcessPriority = priority
  100. End Property
  101.